import pinia from '@/store';
import useUserStore from '@/store/modules/user';

export const isHasButton = (app: any) => {
    //全局自定义指令:实现按钮的权限
    app.directive('has', {
        //代表使用这个全局自定义指令的DOM|组件挂载完毕的时候会执行一次
        mounted(el: any, options: any) {
            //获取用户store
            const userStore = useUserStore(pinia);
            //自定义指令右侧的数值:如果在用户信息buttons数组当中没有
            //从DOM树上干掉
            if (!userStore.buttons.includes(options.value)) {
                // 如果父节点存在，则移除当前元素
                if (el.parentNode) {
                    el.parentNode.removeChild(el);
                } else {
                    // 如果父节点不存在，则隐藏元素
                    el.style.display = 'none';
                }
            }
        },
        // 当指令的值更新时重新检查权限
        updated(el: any, options: any) {
            const userStore = useUserStore(pinia);
            if (!userStore.buttons.includes(options.value)) {
                if (el.parentNode) {
                    el.parentNode.removeChild(el);
                } else {
                    el.style.display = 'none';
                }
            } else {
                el.style.display = '';
            }
        }
    })
}
